package org.huangrui.javase.init;



/*
 * https://download.csdn.net/detail/strugglingl/6301077  Notepad++ HexEditor插件 HexEditor.dll
 * 父类的初始化<clinit>:
 * (1)j = method(); (2）父类的静态代码块
 *
 * 父类的实例化方法<init>:
 * (1) super()(最前)  (2) i = test();
 * (3）父类的非静态代码块 (4)父类的无参构造〈最后)
 *
 * 非静态方法前面其实有一个默认的对象this
 * this在构造器（或<init>)它表示的是正在创建的对象，因为这里是
 * 在创建Son对象，所以test()执行的是子类重写的代码（面向对象多态)
 * 这里i=test()执行的是子类重写的test()方法
 * @author hr
 * @create 2025-03-10 09:11
 */
public class Father {
    private int i = test();
    private static int j = method();

    static {
        System.out.print("(1)");
    }

    Father() {
        System.out.print("(2)");
    }

    {
        System.out.print("(3)");
    }


    public int test() {
        System.out.print("(4)");
        return 1;
    }

    public static int method() {
        System.out.print("(5)");
        return 1;
    }
}